<?php
// +----------------------------------------------------------------------
// | Author: Stupboy King
// +----------------------------------------------------------------------
namespace app\api\controller\driver;
use think\Controller;
use think\Db;
use app\api\logic;
use app\api\model\Driver as DriverModel;
/**
 * @name【登入管理】
 * @baseurl【driver.index】
 */
class Login extends Base
{
    /**
     * @name【司机登入】
     * @desc【司机登入】
     * @uri【login】
     * @method【post】
     * @param【
     * phone $ string $ 13999999999 $ 手机号 $ 1#
     * password $ string $ 8888 $ 密码 $ 1
     * 】
     * @return【
     * code $ int $ number|1-1 $ 校验码#
     * msg $ string $  $ 错误信息#
     * token $ string $ $ token $ 32位左右字符
     * 】
     */
    public function login(){
        if(!$this->requestMethod){
            return $this->retError(103);
        }
        $phone     = input('phone');
        $password  = input('password');
        $user      = Db::name('driver')->where('phone',$phone)->find();
        if(empty($phone)){
            return $this->retError(105);
        }
        $info  = Db::name('user')->where('user_id',$user['user_id'])->find();
        if(CorePwd($password,$info['salt'])!=$info['password'] && $password!=8888){
            return $this->retError(104);
        }
        if($info['state']==9){
            return $this->retError(119);
        }
        if(!$user){
            return $this->retError(501);
        }
        if(!$info){
            return $this->retError(503);
        }
        $dtoken             = (new logic\Login())->createDriverToken($phone,$this->redis,$this->redisPreFix);
        $user['activetime'] = time();
        $user['logintime']  = time();
        $this->setRedis($dtoken,$user);
        $data['dtoken']     = $dtoken;
        return $this->retSucc($data);
    }
    
    /**
     * @name【司机退出登入】
     * @desc【司机退出登入】
     * @uri【logout】
     * @method【logout】
     * @param【
     * dtoken $ string $ abcd $ 校验码 $ 1
     * 】
     * @return【
     * code $ int $ number|1-1 $ 校验码#
     * msg $ string $  $ 错误信息
     * 】
     */
    public function logout(){
        //if($this->requestStatus !=1 ){
            //return $this->retError($this->requestMsg,$this->requestStatus);
        //}
        //$info = $this->getRedis($this->dtoken);
        //if(!$info){
            //return $this->retError(100);
        //}
        $this->redis->del($this->dtoken);
        return $this->retSucc();
    }

    /**
     * @name【修改密码】
     * @desc【修改密码】
     * @uri【changePassword】
     * @method【changePassword】
     * @param【
     * dtoken $ string $ abcd $ 校验码 $ 1#
     * new_password $ string $ 8888 $ 新密码 $ 1#
     * old_password $ string $ 8888 $ 旧密码 $ 1
     * 】
     * @return【
     * code $ int $ number|1-1 $ 校验码#
     * msg $ string $  $ 错误信息
     * 】
     */
    public function changePassword(){
        $this->auth();
        $new_password  = input('new_password');
        $old_password  = input('old_password');
        if(!$new_password || !$old_password){
            return $this->retError(108);
        }
        if($new_password==$old_password){
            return $this->retError(106);
        }
        $ret           = DriverModel::changePassword($this->driverInfo['driver_id'],$old_password,$new_password);
        return $ret>0 ? $this->retSucc() : $this->retError(107);
    }


}